<?php
    @include_once("conn.php");

    if(!( isset($_GET["key"]) && isset($_GET["orderCol"]) && isset($_GET["orderType"]) && isset($_GET["pageIndex"]) && isset($_GET["showNum"]))){
        $obj = array();
        $obj["status"] = false;
        $obj["msg"] = "请传入完整参数";
        $json = json_encode($obj);
        exit($json);
    }

    $key = $_GET["key"];
    $orderCol = $_GET["orderCol"];    // 排序的列名(字段名)
    $orderType = $_GET["orderType"];  // 排序的方式( asc desc)
    $pageIndex = $_GET["pageIndex"];  // 查询的页码  第几页
    $showNum = $_GET["showNum"];      // 每页显示多少条



    // 后端分页  每页显示五条
    // 第1页  1-5     limit 0,5
    // 第2页  6-10    limit 5,5
    // 第3页  11-15   limit 10,5
    // 第4页  16-20   limit 15,5
    
    // pageIndex => 页码    showNum => 每页显示多少条
    //  pageIndex 页   limit   (pageIndex-1)*showNum,showNum

    // 问题?
    // $pageIndex 可能超出临界值(小于最小值  大于最大值)
    // 最大值    最大页码 = 满足条件的总数据 / shouNum  
    // 最小值  1

    // 查询满足条件的数据
    $searchAll = "select count(*) as count from  `grade` where name like '%$key%'";

    $resultAll = mysqli_query($conn,$searchAll);
    
    $obj = array();
    if($resultAll){

        $item = mysqli_fetch_assoc($resultAll);
        
        // 获取所有数据  计算页码最大值
        $count = $item["count"];
        $maxPage = ceil($count / $showNum);
        
        // 临界值限制
        if($pageIndex > $maxPage) $pageIndex = $maxPage;
        if($pageIndex < 1) $pageIndex = 1;

        // 
        $skipNum = ( $pageIndex - 1) * $showNum;

        $sql = "select id,name,class,chinese,math,english,chinese+math+english as total from  `grade` where name like '%$key%' order by $orderCol $orderType limit $skipNum,$showNum";
        
        // 执行mysql语句
        $result = mysqli_query($conn,$sql);
        // print_r($result);
     
         if($result){
             $list = array();
             // 解析数据  => 赋值给变量 $item  =>  有数据,循环解析  没有数据(null) =>跳出循环
             while($item = mysqli_fetch_assoc($result)){
                 // 预处理
                 $item["chinese"] = $item["chinese"]*1;
                 $item["math"] = $item["math"]*1;
                 $item["english"] = $item["english"]*1;
                 $item["total"] = $item["total"]*1;
                 array_push($list,$item);
             }
     
             // print_r($list);
     
             $obj["status"] = true;
             $obj["msg"] = "OK";
             //  前端需要
             $obj["currentIndex"] = $pageIndex*1;
             $obj["count"] = $count*1;
             $obj["maxPage"] = $maxPage*1;

             $obj["list"] = $list;
     
         }else{
             $obj["status"] = false;
             $obj["msg"] = "sql语句有误";
             $obj["sql"] = $sql;
         }
     
    }else{
        $obj["status"] = false;
        $obj["msg"] = "sql语句有误";
        $obj["sql"] = $sql;
    }

   
     echo json_encode($obj);


?>